/**
 * @(#)Constant.java		
 * 
 * History:
 * 1.0	17 April 2012
 *		Created
 * 1.1  2 May 2012
 * 		Moved from upm.pb4agent.team1 to upm.pb4agent.team1.team
 * 1.2  7 May 2012
 * 		Added constant for protocol
 * 2.0	11 May 2012
 * 		Introduced internal ontology
 * 		Introduced enum for dock number
 * 3.0	18 May 2012
 * 		Added constant for Entering Dock, Leaving Dock, and Race Finished protocol
 * 		Introduced enum for impulse, direction, and oar
 * 3.1	22 May 2012
 * 		Applied single Watcher per team
 * 		Added constant for Row, Real Row, and Deny Row protocol
 * 		Removed CreateBoat
 * 3.2	27 May 2012
 * 		Added constant for internal protocol: Inform Coordinate, Inform Rowers Position, Start Row, Stop Row, and Change Seat
 */
package upm.pb4agent.team1.team;

import upm.pb4agent.ontology.AssignBoat;
import upm.pb4agent.ontology.DenyRow;
import upm.pb4agent.ontology.EnteringDock;
import upm.pb4agent.ontology.LeavingDock;
import upm.pb4agent.ontology.PickSeat;
import upm.pb4agent.ontology.RaceFinished;
import upm.pb4agent.ontology.RaceStarted;
import upm.pb4agent.ontology.RealRow;
import upm.pb4agent.ontology.Registration;
import upm.pb4agent.ontology.Row;
import upm.pb4agent.ontology.SubscribeReferee;
import upm.pb4agent.team1.ontology.CancelSubscription;
import upm.pb4agent.team1.ontology.ChangeSeat;
import upm.pb4agent.team1.ontology.InformCoordinate;
import upm.pb4agent.team1.ontology.InformRowersPosition;
import upm.pb4agent.team1.ontology.RegistrationClosed;
import upm.pb4agent.team1.ontology.StartRow;
import upm.pb4agent.team1.ontology.StopRow;

/**
 * 
 * @version 3.2
 * @author Bob Nicolaus
 * 
 */
public class Constant {

	public static final String oar1 = "1";
	public static final String oar2 = "2";
	public static final String oar3 = "3";
	public static final String oar4 = "4";

	// DF type for agents.
	public static final String REFEREE_DF_TYPE = "Referee";
	public static final String REGISTRATION_DESK_DF_TYPE = "RegistrationDesk";
	public static final String WATCHER_DF_TYPE = "Watcher";

	// Protocol
	public static final String RACE_STARTED_PROTOCOL = RaceStarted.class
			.getSimpleName();
	public static final String REGISTRATION_PROTOCOL = Registration.class
			.getSimpleName();
	public static final String SUBSCRIBE_REFEREE_PROTOCOL = SubscribeReferee.class
			.getSimpleName();
	public static final String ASSIGN_BOAT_PROTOCOL = AssignBoat.class
			.getSimpleName();
	public static final String PICK_SEAT_PROTOCOL = PickSeat.class
			.getSimpleName();
	public static final String ENTERING_DOCK_PROTOCOL = EnteringDock.class
			.getSimpleName();
	public static final String LEAVING_DOCK_PROTOCOL = LeavingDock.class
			.getSimpleName();
	public static final String RACE_FINISHED_PROTOCOL = RaceFinished.class
			.getSimpleName();
	public static final String ROW_PROTOCOL = Row.class.getSimpleName();
	public static final String REAL_ROW_PROTOCOL = RealRow.class
			.getSimpleName();
	public static final String DENY_ROW_PROTOCOL = DenyRow.class
			.getSimpleName();

	// Team 1 Protocol
	public static final String REGISTRATION_CLOSED_PROTOCOL = RegistrationClosed.class
			.getSimpleName();
	public static final String CANCEL_SUBSCRIPTION_PROTOCOL = CancelSubscription.class
			.getSimpleName();
	public static final String INFORM_COORDINATE_PROTOCOL = InformCoordinate.class
			.getSimpleName();
	public static final String INFORM_ROWERS_POSITION_PROTOCOL = InformRowersPosition.class
			.getSimpleName();
	public static final String START_ROW_PROTOCOL = StartRow.class
			.getSimpleName();
	public static final String STOP_ROW_PROTOCOL = StopRow.class
			.getSimpleName();
	public static final String CHANGE_SEAT_PROTOCOL = ChangeSeat.class
			.getSimpleName();

	// Dock
	public static enum DockNumber {
		A, B, C, D
	}

	// Strength
	public static enum Impulse {
		Weak, Medium, Strong
	}

	// Direction
	public static enum Direction {
		Forward, Backward
	}
}
